package cn.iocoder.yudao.module.system.feign;

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * @author pg
 * @project zysx
 * @description 已审批数据
 * @date 2024/9/3 11:20:51
 */
@Data
public class ApprovedResp {

    /**
     * 状态 0，活动 1，结束
     */
    protected Integer instanceState;
    /**
     * 结束时间
     */
    protected LocalDateTime endTime;
    /**
     * 流程定义ID
     */
    protected Long processId;
    /**
     * 流程实例优先级
     */
    protected Integer priority;
    /**
     * 流程实例编号
     */
    protected String instanceNo;
    /**
     * 业务KEY（用于关联业务逻辑实现预留）
     */
    protected String businessKey;
    /**
     * 变量json
     */
    protected String variable;
    /**
     * 流程实例版本
     */
    protected Integer instanceVersion;
    /**
     * 流程实例期望完成时间
     */
    protected LocalDateTime expireTime;
    /**
     * 流程实例上一次更新人员ID
     */
    protected String lastUpdateBy;
    /**
     * 流程实例上一次更新时间
     */
    protected LocalDateTime lastUpdateTime;
    /**
     * 主键ID
     */
    protected Long id;
    /**
     * 租户ID
     */
    protected String tenantId;
    /**
     * 创建人ID
     */
    protected String createId;
    /**
     * 创建人
     */
    protected String createBy;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    private String processKey;
    private String processName;
    private String actorId;
    private String actorName;
    private String avatar;
    private Long taskId;

    public VacationTime getVacation() {
        Gson gson = new Gson();
        if (variable == null || variable.isEmpty()) {
            // 返回默认值或抛出自定义异常
            return new VacationTime(); // 假设 VacationTime 有一个无参构造函数
        }

        try {
            return gson.fromJson(variable, VacationTime.class);
        } catch (JsonSyntaxException e) {
            // 记录异常信息
            // 返回默认值或抛出自定义异常
            return new VacationTime(); // 假设 VacationTime 有一个无参构造函数
        }
    }
}
